#ifndef _WUTIL_CONFIG_STORE_H_
#define _WUTIL_CONFIG_STORE_H_

#include <string>
#include <map>


namespace UI
{

class UI_ConfigStore
{
public:
	UI_ConfigStore(void) { }

	virtual ~UI_ConfigStore(void) { }
	std::pair<bool, std::string> GetStringEntry(std::string sKey) const;
	std::pair<bool, long int> GetLongIntEntry(std::string sKey) const;
	std::pair<bool, double> GetDoubleEntry(std::string sKey) const;
	void SetStringEntry(std::string sKey, std::string sValue);
	void SetLongIntEntry(std::string sKey, long int lValue);
	void SetDoubleEntry(std::string sKey, double dValue);
	void RemoveEntry(std::string sKey);
	bool EntryExists(std::string sKey) const;
	void StoreToFile(std::string sFilename) const;
	bool ReadFromFile(std::string sFilename);
	void Clear(void);
protected:
	typedef std::map<std::string, std::string> t_SettingsMap;
	t_SettingsMap m_SettingsMap;
};

};

#endif

